7233
6443
لدي مجموعة بيانات على النحو الوارد أدناه
اسم col1 col2
أ 10.3 10.9
ب 11 15
ج 20 7.2
د 6.2 6.2
هـ 5.3 5.4
f 4.5 4.0
أرغب في مقارنة col1 و col2 من df الخاص بي وأريد عمل عمود آخر حيث أثناء مقارنة قيم col1 و col2 إذا كانت قيمة col2 تزداد من col1 ، فأنا أريد إدخال زيادة بجانبهما في عمودي هناك وإذا كانت تناقص ، ثم أريد أن أكتب تناقصًا ولا تغييرات إذا كانت هي نفسها
وأريد إنتاجي مثل هذا
اسم col1 col2 col3
10.3 10.9 زيادة
ب 11 15 متزايد
ج 20 7.2 تناقص
د 6.2 6.2 لا تغيير
هـ 5.3 5.4 زيادة
f 4.5 4.0 متناقصة 
مع dplyr:
df٪>٪
متحور (Col3 = ifelse (col2 == col1 ،
"لا تغيير"،
ifelse (col2> col1 ،
"زيادة" ، "تناقص")))
أو باستخدام case_when كما اقترحakrun
df٪>٪
mutate (Col3 = case_when (col1 == col2 ~ "no change" ،
col2> col1 ~ "زيادة" ،
TRUE ~ "تناقص"))
نتيجة:
اسم col1 col2 Col3
1 أ 10.3 10.9 زيادة
2 ب 11.0 15.0 متزايد
3 ج 20.0 7.2 متناقصة
4 د 6.2 6.2 لا تغيير
5 هـ 5.3 5.4 متصاعد
6 f 4.5 4.0 متناقصة
البيانات:
df <-structure (list (name = c ("a"، "b"، "c"، "d"، "e"، "f")، col1 = c (10.3،
11، 20، 6.2، 5.3، 4.5)، col2 = c (10.9، 15، 7.2، 6.2، 5.4، 4))، class = "data.frame"، row.names = c (NA،
-6 لتر))
|
يمكننا طرح col1 بواسطة col2 ثم استخدام الإشارة لتعيين القيم
df $ col3 <- c ("تناقص" ، "لا تغيير" ، "زيادة") [علامة (df $ col1 - df $ col2) + 2]
مدافع
# اسم col1 col2 col3
# 1 أ 10.3 10.9 متناقصة
# 2 ب 11.0 15.0 متناقصة
# 3 ج 20.0 7.2 آخذ في الازدياد
# 4 د 6.2 6.2 لا تغيير
# 5 هـ 5.3 5.4 متناقصة
# 6 f 4.5 4.0 متزايد
أو باستخدام dplyr ، يمكننا استخدام case_when
مكتبة (dplyr)
df٪>٪
mutate (col3 = case_when (col1 == col2 ~ "no change" ،
col1> col2 ~ "زيادة" ،
TRUE ~ "تناقص"))
|
قاعدة ص
df $ col3 <- مع (df، ifelse (col1> col2، "انخفاض"
ifelse (col1